package com.sale.salesystem.vo;

import lombok.Data;
import java.math.BigDecimal;
import java.util.List;

@Data
public class CustomerAnalysisVO {
    // KPI数据
    private CustomerKpiVO kpiData;
    // 客户分布数据
    private CustomerDistributionVO distribution;
    // 客户趋势数据
    private CustomerTrendVO trend;

    @Data
    public static class CustomerKpiVO {
        private Integer totalCustomers;     // 累计客户数
        private Double weekOnWeek;          // 周同比
        private Double dayOnDay;            // 日环比
        private Integer newCustomers;       // 新客户数
        private Double newWeekOnWeek;       // 新客户周同比
        private Double newDayOnDay;         // 新客户日环比
    }

    @Data
    public static class CustomerDistributionVO {
        private List<DistributionItemVO> gender;    // 性别分布
        private List<DistributionItemVO> age;       // 年龄分布
        private List<DistributionItemVO> city;      // 城市分布
        private List<WeekdayDataVO> weekday;        // 消费时间分布
        private List<ConsumptionDataVO> consumption;  // 消费能力分布
    }

    @Data
    public static class CustomerTrendVO {
        private List<String> months;                // 月份
        private List<BigDecimal> avgConsumption;   // 人均消费
        private List<BigDecimal> avgProfit;        // 人均利润
    }

    @Data
    public static class DistributionItemVO {
        private String name;       // 分类名称
        private Integer value;     // 数量
        private Double percent;    // 占比
    }

    @Data
    public static class WeekdayDataVO {
        private String weekday;    // 星期
        private Integer count;     // 数量
    }

    @Data
    public static class ConsumptionDataVO {
        private String range;      // 消费区间
        private Integer count;     // 客户数量
    }
} 